<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <!-- import CSS -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.15.9/theme-chalk/index.css">
</head>
<body>
<div id="app">
    <el-container>
        <el-header style="background-color: #0095d7">
            <h1 style="color: white;font-size: 22px">
                CoolShark商城后台管理系统
                <span v-if="user.nickname!=null" style="float: right;font-size: 15px">欢迎{{user.nickname}}回来
                    <a href="javascript:void(0)" @click="logout()">退出登录</a>
                </span>
            </h1>
        </el-header>
        <el-container>
            <el-aside width="200px">
                <el-menu style="height: 500px"
                        @select="handleSelect"
                        default-active="2"
                        class="el-menu-vertical-demo">
                    <el-submenu index="1">
                        <template slot="title">
                            <i class="el-icon-s-flag"></i>
                            <span>分类管理</span>
                        </template>
                       <el-menu-item index="1-1">分类列表</el-menu-item>
                       <el-menu-item index="1-2">添加分类</el-menu-item>
                    </el-submenu>
                    <el-submenu index="2">
                        <template slot="title">
                            <i class="el-icon-picture"></i>
                            <span>轮播图管理</span>
                        </template>
                        <el-menu-item index="2-1">轮播图列表</el-menu-item>
                        <el-menu-item index="2-2">添加轮播图</el-menu-item>
                    </el-submenu>
                    <el-submenu index="3">
                        <template slot="title">
                            <i class="el-icon-shopping-cart-2"></i>
                            <span>商品管理</span>
                        </template>
                        <el-menu-item index="3-1">商品列表</el-menu-item>
                        <el-menu-item index="3-2">添加商品</el-menu-item>
                    </el-submenu>

                </el-menu>

            </el-aside>
            <el-main>
                <el-table v-if="currentIndex=='1-1'"
                        :data="categoryArr"
                        style="width: 100%">
                    <!--type=index 设置这一列显示的内容为编号-->
                    <el-table-column type="index" label="编号"></el-table-column>
                    <el-table-column
                            prop="name"
                            label="分类名称"
                            width="180">
                    </el-table-column>
                    <el-table-column label="操作">
                        <!--scope里面装着当前行所对应的对象信息
                        scope.$index 得到当前行对应的对象在数组中的下标
                        scope.row 得到当前行对应的对象
                        -->
                        <template slot-scope="scope">
                                <el-button   size="mini"
                                             @click="categoryUpdate(scope.row)"
                                           type="success">修改</el-button>
                            <el-popconfirm
                                    title="这是一段内容确定删除吗？"
                                    @confirm="categoryDelete(scope.$index, scope.row)"
                            >
                                <el-button slot="reference"
                                           size="mini"
                                           type="danger">删除</el-button>
                            </el-popconfirm>
                        </template>
                    </el-table-column>
                </el-table>
                <el-table v-if="currentIndex=='2-1'"
                        :data="bannerArr"
                        style="width: 100%">
                    <!--type=index 设置这一列显示的内容为编号-->
                    <el-table-column type="index" label="编号"></el-table-column>
                    <el-table-column
                            label="轮播图"
                            width="180">
                        <template slot-scope="scope">
                            <!--scope.row代表当前行对应数组中的对象-->
                           <img :src="scope.row.url" width="100%">
                        </template>
                    </el-table-column>
                    <el-table-column label="操作">
                        <!--scope里面装着当前行所对应的对象信息
                        scope.$index 得到当前行对应的对象在数组中的下标
                        scope.row 得到当前行对应的对象
                        -->
                        <template slot-scope="scope">
                            <el-button @click="bannerUpdate(scope.row)"
                                       size="mini"
                                       type="success">修改</el-button>
                            <el-popconfirm
                                    title="这是一段内容确定删除吗？"
                                    @confirm="bannerDelete(scope.$index, scope.row)"
                            >
                                <el-button slot="reference"
                                           size="mini"
                                           type="danger">删除</el-button>
                            </el-popconfirm>
                        </template>
                    </el-table-column>
                </el-table>
                <el-table v-if="currentIndex=='3-1'"
                        :data="productArr"
                        style="width: 100%">
                    <!--type=index 设置这一列显示的内容为编号-->
                    <el-table-column type="index" label="编号"></el-table-column>
                    <el-table-column prop="title" label="商品标题" width="200"></el-table-column>
                    <el-table-column prop="price" label="价格" width="80"></el-table-column>
                    <el-table-column prop="oldPrice" label="原价" width="80"></el-table-column>
                    <el-table-column prop="saleCount" label="销量" width="80"></el-table-column>
                    <el-table-column
                            label="商品图片"
                            width="100">
                        <template slot-scope="scope">
                            <!--scope.row代表当前行对应数组中的对象-->
                            <img :src="scope.row.url" width="100%">
                        </template>
                    </el-table-column>
                    <el-table-column label="操作">
                        <!--scope里面装着当前行所对应的对象信息
                        scope.$index 得到当前行对应的对象在数组中的下标
                        scope.row 得到当前行对应的对象
                        -->
                        <template slot-scope="scope">
                            <el-button @click="productUpdate(scope.row)"
                                       size="mini"
                                       type="success">修改</el-button>
                            <el-popconfirm
                                    title="这是一段内容确定删除吗？"
                                    @confirm="productDelete(scope.$index, scope.row)"
                            >
                                <el-button slot="reference"
                                           size="mini"
                                           type="danger">删除</el-button>
                            </el-popconfirm>
                        </template>
                    </el-table-column>
                </el-table>
            </el-main>
        </el-container>
    </el-container>
</div>
</body>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.min.js"></script>
<!-- import Vue before Element -->
<script src="https://cdn.staticfile.org/vue/2.6.14/vue.min.js"></script>
<!-- import JavaScript -->
<script src="https://cdn.staticfile.org/element-ui/2.15.9/index.min.js"></script>
<script>
   let v = new Vue({
        el: '#app',
        data: function() {
            return {
                currentIndex:"1-1",
                categoryArr:[],
                bannerArr:[],
                productArr:[],
                user:{}
            }
        },
       methods:{
            logout(){
                if(confirm("确定退出登录吗？"))
                //发出退出登录请求
                axios.get("/logout").then(function (response) {
                    location.href="/";
                })
            },
           bannerUpdate(banner){
               location.href="/updateBanner.html?url="+banner.url+"&id="+banner.id;
           },
           bannerDelete(index,banner){
               //发请求删除服务器的数据
               axios.get("/banner/delete?id="+banner.id).then(function (response) {
                   //删除数组总的数据
                   v.bannerArr.splice(index,1);
               })
           },
          productUpdate(product){
                /*location.href="/updateProduct.html?id="+product.id;*/
              location.href="/updateProduct.html?id="+product.id;
            },
           productDelete(index,product){
                //发请求,删除服务器数据
                axios.get("/product/delete?id="+product.id).then(function (response) {
                    v.productArr.splice(index,1)
                })
            },
           categoryDelete(index,category){
               //发请求删除分类
               axios.get("/category/delete?id="+category.id).then(function () {
                   //删除数组中的元素（删除位置，删除个数）
                   v.categoryArr.splice(index,1)
               })
           },
           categoryUpdate(category){
               let name=prompt("请输入新的分类名称");
               if(name==null){
                   return;
               }
               if(name==''){
                   v.$message("分类名称不能为空");
                   return;
               }
               //创建对象
               let c ={id:category.id,name:name}
               //发出修改请求，把页面传回来
               axios.post("/category/update",c).then(function () {
                  category.name=name
               })
           },
           handleSelect(key,keyPath){
               if (key=='1-2'){
                   let name=prompt("请输入分类的名称");
                   if(name==null){
                      return;;
                   }
                   if(name==''){
                       v.$message("分类名称不能为空");
                       return;
                   }
                   axios.get("/category/insert?name="+name).then(function (response) {
                       //添加分类后把所有的分类请求回来赋值给数组
                       v.categoryArr=response.data
                   })
               }else if (key=='2-2'){
                   //跳转添加轮播图页面
                location.href="/insertBanner.html"
               }else if (key=='3-2'){
                   //添加商品页面
                   location.href="/insertProduct.html"
               }else{
                   v.currentIndex = key;
               }
           },

       },
       created:function () {
           axios.get("/category/select").then(function (response) {
               v.categoryArr=response.data
           })
           axios.get("/banner/select").then(function (response) {
               v.bannerArr=response.data
           })
           //发请求获取所有商品数据
           axios.get("/product/select/admin").then(function (response) {
               v.productArr = response.data;
           })
           axios.get("/currentUser").then(function (response) {
               v.user=response.data;
               if(v.user==""){
                   alert("请先登录")
                   location.href="/login.html"
               }
           })
       }
    })
</script>
</html>